package mx.ipn.pruebas;

import java.util.ArrayList;

import mx.ipn.persistencia.FabricaDeDAOs;
import mx.ipn.persistencia.dao.*;
import mx.ipn.to.*;

public class PruebaDAOs19 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		FabricaDeDAOs fabricaMySQL = FabricaDeDAOs
				.getFabricaDeDAOs(mx.ipn.Constantes.FABRICA_DAOS_MYSQL);
		short resultado;

		// ***********************************************************************************************
		// RESPONSABLE
		System.out
				.println("<<<<<<<<<<<<<<<<<<<<<<<<<RESPONSABLE>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
		try {

			EmpleadoTO empleadoTO = new EmpleadoTO();
			empleadoTO.setIdEmpleado(1);

			ResponsableDAO responsableDAO = fabricaMySQL.getResponsableDAO();
			ResponsableTO responsableTO = new ResponsableTO();
			responsableTO.setIdResponsable(1);
			responsableTO.setIdEmpleadoJefe(1);
			responsableTO.setIdEmpleadoSubordinado(2);
			responsableTO.setActivo(true);

			// insert
			/*
			 * if (responsableDAO.insertResponsable(responsableTO)) {
			 * responsableDAO.insertResponsable(responsableTO); System.out
			 * .println("+++++++++++++++++++ Insertado correctamente"); } else
			 * System.out.println("Falla en la insercion");
			 */
			// desactiva
			resultado = responsableDAO.activaDesactivaResponsable(5, false);
			if (resultado == 1)
				System.out
						.println(">>>>>>>>>>>>>>>>>>> Desactivado correctamente");
			else if (resultado == 0)
				System.out.println("Falla en el Desactivado");
			else if (resultado == -1)
				System.out.println("Ocurrio una excepcion");

			// actualiza
			responsableTO.setIdResponsable(6);
			responsableTO.setActivo(false);

			resultado = responsableDAO.updateResponsable(responsableTO);
			if (resultado == 1)
				System.out
						.println(">>>>>>>>>>>>>>>>>>> Actualizado correctamente");
			else if (resultado == 0)
				System.out.println("Falla en la actualizacion");
			else if (resultado == -1)
				System.out.println("Ocurrio una excepcion");

			// Busca
			System.out.println("------------------------- BUSQUEDA POR ID");
			responsableTO = responsableDAO.findResponsableById(1);
			if (responsableTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("RESPONSABLE");
				ImprimirTO.Imprime(responsableTO);

			} else {
				System.out.println("Falla en la seleccion");
			}

			// Busca
			System.out
					.println("------------------------- BUSQUEDA POR IDJEFEIDSUBODINADO");
			responsableTO = responsableDAO.findResponsableByJefeSubordinado(1,
					2);
			if (responsableTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("RESPONSABLE");
				ImprimirTO.Imprime(responsableTO);

			} else {
				System.out.println("Falla en la seleccion");
			}

			// busqueda multiple
			System.out
					.println("**++++++++++++++++++++++ SELECT RESPONSABLE +**");
			java.util.Collection<ResponsableTO> listResponsableTO = responsableDAO
					.selectResponsable();
			if (listResponsableTO != null) {
				for (int i = 0; i < listResponsableTO.size(); i++) {
					responsableTO = ((ArrayList<ResponsableTO>) listResponsableTO)
							.get(i);

					System.out.println("RESPONSABLE");
					ImprimirTO.Imprime(responsableTO);
				}
			} else {
				System.out.println("No hubo resultados en la seleccion");
			}

			// busqueda multiple
			System.out
					.println("**++++++++++++++++++++++ SELECT RESPONSABLE ACTIVO+**");
			listResponsableTO = responsableDAO.selectResponsableActivo();
			if (listResponsableTO != null) {
				for (int i = 0; i < listResponsableTO.size(); i++) {
					responsableTO = ((ArrayList<ResponsableTO>) listResponsableTO)
							.get(i);

					System.out.println("RESPONSABLE");
					ImprimirTO.Imprime(responsableTO);
				}
			} else {
				System.out.println("No hubo resultados en la seleccion");
			}

			// Busca
			System.out.println("------------------- BUSQUEDA POR JEFE");
			responsableTO = responsableDAO.selectResponsableByJefe(4);
			if (responsableTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("RESPONSABLE");

				for (int x = 0; x < responsableTO.getListIdResponsable().length; x++) {
					System.out.println("IDRESPONSABLE");
					System.out.println(responsableTO.getListIdResponsable()[x]);
				}
				for (int x = 0; x < responsableTO.getListActivos().length; x++) {
					System.out.println("ACTIVO");
					System.out.println(responsableTO.getListActivos()[x]);
				}
				for (int x = 0; x < responsableTO
						.getListEmpleadoSubordinadoTO().length; x++) {
					System.out.println("SUBORDINADO");
					ImprimirTO.Imprime(responsableTO
							.getListEmpleadoSubordinadoTO()[x]);
				}

				for (int x = 0; x < responsableTO.getListEmpleadoJefeTO().length; x++) {
					System.out.println("JEFE");
					ImprimirTO
							.Imprime(responsableTO.getListEmpleadoJefeTO()[x]);
				}

			} else {
				System.out.println("Falla en la seleccion");
			}

			// Busca
			System.out.println("------------------- BUSQUEDA POR JEFE ACTIVO");
			responsableTO = responsableDAO.selectResponsableByJefe(4);
			if (responsableTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("RESPONSABLE");

				for (int x = 0; x < responsableTO.getListIdResponsable().length; x++) {
					System.out.println("IDRESPONSABLE");
					System.out.println(responsableTO.getListIdResponsable()[x]);
				}
				for (int x = 0; x < responsableTO.getListActivos().length; x++) {
					System.out.println("ACTIVO");
					System.out.println(responsableTO.getListActivos()[x]);
				}
				for (int x = 0; x < responsableTO
						.getListEmpleadoSubordinadoTO().length; x++) {
					System.out.println("SUBORDINADO");
					ImprimirTO.Imprime(responsableTO
							.getListEmpleadoSubordinadoTO()[x]);
				}

				for (int x = 0; x < responsableTO.getListEmpleadoJefeTO().length; x++) {
					System.out.println("JEFE");
					ImprimirTO
							.Imprime(responsableTO.getListEmpleadoJefeTO()[x]);
				}

			} else {
				System.out.println("Falla en la seleccion");
			}

			// Busca
			System.out.println("------------------- BUSQUEDA POR SUBORDINADO");
			responsableTO = responsableDAO.selectResponsableBySubordinado(4);
			if (responsableTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("RESPONSABLE");

				for (int x = 0; x < responsableTO.getListIdResponsable().length; x++) {
					System.out.println("IDRESPONSABLE");
					System.out.println(responsableTO.getListIdResponsable()[x]);
				}
				for (int x = 0; x < responsableTO.getListActivos().length; x++) {
					System.out.println("ACTIVO");
					System.out.println(responsableTO.getListActivos()[x]);
				}
				for (int x = 0; x < responsableTO.getListEmpleadoJefeTO().length; x++) {
					System.out.println("JEFE");
					ImprimirTO
							.Imprime(responsableTO.getListEmpleadoJefeTO()[x]);
				}

				for (int x = 0; x < responsableTO
						.getListEmpleadoSubordinadoTO().length; x++) {
					System.out.println("SUBORDINADO");
					ImprimirTO.Imprime(responsableTO
							.getListEmpleadoSubordinadoTO()[x]);
				}

			} else {
				System.out.println("Falla en la seleccion");
			}

			// Busca
			System.out
					.println("------------------- BUSQUEDA POR SUBORDINADO ACTIVO");
			responsableTO = responsableDAO.selectResponsableBySubordinado(4);
			if (responsableTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("RESPONSABLE");

				for (int x = 0; x < responsableTO.getListIdResponsable().length; x++) {
					System.out.println("IDRESPONSABLE");
					System.out.println(responsableTO.getListIdResponsable()[x]);
				}
				for (int x = 0; x < responsableTO.getListActivos().length; x++) {
					System.out.println("ACTIVO");
					System.out.println(responsableTO.getListActivos()[x]);
				}
				for (int x = 0; x < responsableTO.getListEmpleadoJefeTO().length; x++) {
					System.out.println("JEFE");
					ImprimirTO
							.Imprime(responsableTO.getListEmpleadoJefeTO()[x]);
				}

				for (int x = 0; x < responsableTO
						.getListEmpleadoSubordinadoTO().length; x++) {
					System.out.println("SUBORDINADO");
					ImprimirTO.Imprime(responsableTO
							.getListEmpleadoSubordinadoTO()[x]);
				}

			} else {
				System.out.println("Falla en la seleccion");
			}
		} catch (Exception e) {
			System.out.println("Ocurrio una excepcion");
		}

		// ***********************************************************************************************
		// BITACORARESPONSABLE
		System.out
				.println("<<<<<<<<<<<<<<<<<<<<<<<<<BITACORARESPONSABLE>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
		try {

			EmpleadoTO empleadoTO = new EmpleadoTO();
			empleadoTO.setIdEmpleado(1);

			BitacoraResponsableDAO bitacoraResponsableDAO = fabricaMySQL
					.getBitacoraResponsableDAO();
			BitacoraResponsableTO bitacoraResponsableTO = new BitacoraResponsableTO();
			bitacoraResponsableTO.setIdResponsable(1);
			bitacoraResponsableTO.setIdEmpleadoJefe(2);
			bitacoraResponsableTO.setIdEmpleadoSubordinado(3);
			bitacoraResponsableTO.setFecha(FechaHoraTO.getFecha("2012/08/08"));
			bitacoraResponsableTO.setActivo(true);

			// insert

			if (bitacoraResponsableDAO
					.insertBitacoraResponsable(bitacoraResponsableTO)) {
				bitacoraResponsableDAO
						.insertBitacoraResponsable(bitacoraResponsableTO);
				System.out
						.println("+++++++++++++++++++ Insertado correctamente");
			} else
				System.out.println("Falla en la insercion");

			// Busca
			System.out.println("------------------------- BUSQUEDA POR ID");
			bitacoraResponsableTO = bitacoraResponsableDAO
					.findBitacoraResponsableById(1);
			if (bitacoraResponsableTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("BITACORARESPONSABLE");
				ImprimirTO.Imprime(bitacoraResponsableTO);

			} else {
				System.out.println("Falla en la seleccion");
			}

			// busqueda multiple
			System.out
					.println("**++++++++++++++++++++++ SELECT BITACORARESPONSABLE +**");
			java.util.Collection<BitacoraResponsableTO> listBitacoraResponsableTO = bitacoraResponsableDAO
					.selectBitacoraResponsable();
			if (listBitacoraResponsableTO != null) {
				for (int i = 0; i < listBitacoraResponsableTO.size(); i++) {
					bitacoraResponsableTO = ((ArrayList<BitacoraResponsableTO>) listBitacoraResponsableTO)
							.get(i);

					System.out.println("BITACORARESPONSABLE");
					ImprimirTO.Imprime(bitacoraResponsableTO);
				}
			} else {
				System.out.println("No hubo resultados en la seleccion");
			}

			// busqueda multiple
			System.out
					.println("**++++++++++++++++++++++ SELECT BITACORARESPONSABLE POR IDRESPONSABLE+**");
			listBitacoraResponsableTO = bitacoraResponsableDAO
					.selectBitacoraResponsableByIdResponsable(1);
			if (listBitacoraResponsableTO != null) {
				for (int i = 0; i < listBitacoraResponsableTO.size(); i++) {
					bitacoraResponsableTO = ((ArrayList<BitacoraResponsableTO>) listBitacoraResponsableTO)
							.get(i);

					System.out.println("BITACORARESPONSABLE");
					ImprimirTO.Imprime(bitacoraResponsableTO);
				}
			} else {
				System.out.println("No hubo resultados en la seleccion");
			}

			// busqueda multiple
			System.out
					.println("**++++++++++++++++++++++ SELECT BITACORARESPONSABLE RANGOFECHA+**");
			listBitacoraResponsableTO = bitacoraResponsableDAO
					.selectBitacoraResponsableByRangoFecha(FechaHoraTO
							.getFecha("2000/01/01"), FechaHoraTO
							.getFecha("2009/01/01"));
			if (listBitacoraResponsableTO != null) {
				for (int i = 0; i < listBitacoraResponsableTO.size(); i++) {
					bitacoraResponsableTO = ((ArrayList<BitacoraResponsableTO>) listBitacoraResponsableTO)
							.get(i);

					System.out.println("BITACORARESPONSABLE");
					ImprimirTO.Imprime(bitacoraResponsableTO);
				}
			} else {
				System.out.println("No hubo resultados en la seleccion");
			}

			// Busca
			System.out.println("------------------- BUSQUEDA POR JEFE");
			bitacoraResponsableTO = bitacoraResponsableDAO
					.selectBitacoraResponsableByJefe(4);
			if (bitacoraResponsableTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("BITACORARESPONSABLE");

				for (int x = 0; x < bitacoraResponsableTO.getListIdOperacion().length; x++) {
					System.out.println("IDBITACORARESPONSABLE");
					System.out.println(bitacoraResponsableTO
							.getListIdOperacion()[x]);
				}
				for (int x = 0; x < bitacoraResponsableTO
						.getListIdResponsable().length; x++) {
					System.out.println("IDRESPONSABLE");
					System.out.println(bitacoraResponsableTO
							.getListIdResponsable()[x]);
				}
				for (int x = 0; x < bitacoraResponsableTO.getListActivos().length; x++) {
					System.out.println("ACTIVO");
					System.out
							.println(bitacoraResponsableTO.getListActivos()[x]);
				}
				for (int x = 0; x < bitacoraResponsableTO.getListFecha().length; x++) {
					System.out.println("FECHA");
					System.out.println(bitacoraResponsableTO.getListFecha()[x]);
				}
				for (int x = 0; x < bitacoraResponsableTO
						.getListEmpleadoSubordinadoTO().length; x++) {
					System.out.println("SUBORDINADO");
					ImprimirTO.Imprime(bitacoraResponsableTO
							.getListEmpleadoSubordinadoTO()[x]);
				}

				for (int x = 0; x < bitacoraResponsableTO
						.getListEmpleadoJefeTO().length; x++) {
					System.out.println("JEFE");
					ImprimirTO.Imprime(bitacoraResponsableTO
							.getListEmpleadoJefeTO()[x]);
				}

			} else {
				System.out.println("Falla en la seleccion");
			}

			// Busca
			System.out.println("------------------- BUSQUEDA POR SUBORDINADO");
			bitacoraResponsableTO = bitacoraResponsableDAO
					.selectBitacoraResponsableBySubordinado(2);
			if (bitacoraResponsableTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("BITACORARESPONSABLE");

				for (int x = 0; x < bitacoraResponsableTO.getListIdOperacion().length; x++) {
					System.out.println("IDBITACORARESPONSABLE");
					System.out.println(bitacoraResponsableTO
							.getListIdOperacion()[x]);
				}
				for (int x = 0; x < bitacoraResponsableTO
						.getListIdResponsable().length; x++) {
					System.out.println("IDRESPONSABLE");
					System.out.println(bitacoraResponsableTO
							.getListIdResponsable()[x]);
				}
				for (int x = 0; x < bitacoraResponsableTO.getListActivos().length; x++) {
					System.out.println("ACTIVO");
					System.out
							.println(bitacoraResponsableTO.getListActivos()[x]);
				}
				for (int x = 0; x < bitacoraResponsableTO.getListFecha().length; x++) {
					System.out.println("FECHA");
					System.out.println(bitacoraResponsableTO.getListFecha()[x]);
				}

				for (int x = 0; x < bitacoraResponsableTO
						.getListEmpleadoJefeTO().length; x++) {
					System.out.println("JEFE");
					ImprimirTO.Imprime(bitacoraResponsableTO
							.getListEmpleadoJefeTO()[x]);
				}

				for (int x = 0; x < bitacoraResponsableTO
						.getListEmpleadoSubordinadoTO().length; x++) {
					System.out.println("SUBORDINADO");
					ImprimirTO.Imprime(bitacoraResponsableTO
							.getListEmpleadoSubordinadoTO()[x]);
				}

			} else {
				System.out.println("Falla en la seleccion");
			}
		}

		catch (Exception e) {
			System.out.println("Ocurrio una excepcion");
		}

	}
}
